草庐IT

iOS AVCaptureVideoDataOutput 占用太多内存

全部标签

c# - 如何用零删除 StringBuilder 内存

我在StringBuilder对象中存储了一个密码。我正在寻找一种方法来删除内存中的密码。以下任何一种方法都可以实现这一点:遍历StringBuilder字符并分配'\0'。是如果我已经分配,​​这保证使用相同的内存最初有足够的内存吗?我可以使用任何非托管API,例如ZeroMemory()或SecureZeroMemory()使用StringBuilder?有代码示例吗?编辑:使用SecureString不是我的选择,因为我正在调用CredUIPromptForCredentials()来获取凭据。 最佳答案 简单的答案是,您提出

c# - 使用插值 vs "+"运算符连接字符串的内存使用情况

我看到了使用内插字符串在可读性方面的好处:stringmyString=$"Hello{person.FirstName}{person.LastName}!"通过这种方式完成的串联:stringmyString="Hello"+person.FirstName+""person.LastName+"!";作者thisvideotutorial声称第一个可以更好地利用内存。怎么会? 最佳答案 作者实际上并没有说一个比另一个更好地利用内存。它在抽象中说,一种方法“充分利用了内存”,这本身并没有什么实际意义。但是不管他们怎么说,这两种方

c# - 如何在 C# 中获取内存中 Image 类实例的 mime 类型?

在我正在为工作中的一些基础设施项目编写的库中,我有一种方法可以创建各种比例的图像(用于缩略图等...)。但是,出于各种原因,我存储此数据的系统需要在数据库中声明一个mime类型。有没有办法从传入的c#Image类中获取Mime类型,或者我必须让外部应用程序将Mimetype与图像一起传入? 最佳答案 您可以获得ImageFormat从Image,您可以从ImageCodecInfo中获取MIME类型.您需要做的就是将两者结合在一起:ImageFormatformat=yourImage.RawFormat;ImageCodecInf

c# - 类中声明的变量的内存分配

因为Value类型变量在堆栈中分配内存,而Reference类型在堆中分配它。那么在引用类型(例如类)中声明值类型变量(例如inti=4;)时,内存是如何分配的。.NET中值类型和引用类型以及引用类型范围内的值类型的整体内存分配是如何工作的。请对其进行解释或提供任何相关链接。 最佳答案 Avaluetypevariableallocatesmemoryonthestackwhereasareferencetypeallocatesitinheap.不,这种说法是完全错误的。很多人相信这一点,但正如您所发现的,这显然是错误的。Howi

c# - 解决C#内存泄漏的方法有哪些

我正在学习C#。据我所知,您必须正确设置才能让垃圾收集器真正删除应有的所有内容。我正在寻找多年来从你那里学到的智慧,聪明人。我有C++背景,非常习惯代码味道和开发模式。我想了解C#中的代码味道是什么样的。给我建议!删除内容的最佳方法是什么?你怎么知道什么时候有“内存泄漏”?编辑:我正在尝试开发一个“内存管理要始终做的事情”的list非常感谢。 最佳答案 C#,.NETFramework使用托管内存,所有内容(但分配的​​非托管资源)都被垃圾收集。可以安全地假设托管类型总是被垃圾收集。这包括数组、类和结构。随意执行int[]stuff

c# - 如何获取 dll 函数的 id(内存地址)?

我想在C#“NvAPI_DRS_EnumProfiles”中使用来自nvapi的函数。我必须使用函数的id调用QueryInterface(id)。一切正常,我在网上找到了我需要的其他功能的ID,但是我找不到这个单一函数的id,也不知道怎么获取。我尝试了很多东西,甚至一个打印内存地址的c程序也没有用。我的代码看起来像这样:http://www.drivenbynostalgia.com/files/SOP.cs谢谢你的帮助:) 最佳答案 lib的NDA版本_NvAPI_Initialize150E828h_NvAPI_Unload0

c# - 我如何确定为什么 Enyim 内存缓存在存储项目时返回 false?

我如何确定为什么Enyim从以下调用中返回false:cache.Store(Enyim.Caching.Memcached.StoreMode.Set,key,value);其他项目存储正常,因此与服务器的连接似乎不是问题。该对象似乎不大于1MB。那么我怎样才能确定是什么导致了错误呢? 最佳答案 要检查的另一件事是您存储的整个对象图是[Serializable]。如果不是,则Enyim将抛出一个序列化异常,它会告诉您需要将哪个类型标记为可序列化。按照https://github.com/enyim/EnyimMemcached/w

c# - 使用 Wea​​kReference 解决 .NET 未注册事件处理程序导致内存泄漏的问题

问题:已注册的事件处理程序创建了从事件到事件处理程序实例的引用。如果该实例无法注销事件处理程序(大概是通过Dispose),那么垃圾收集器将不会释放实例内存。例子:classFoo{publiceventActionAnEvent;publicvoidDoEvent(){if(AnEvent!=null)AnEvent();}}classBar{publicBar(Fool){l.AnEvent+=l_AnEvent;}voidl_AnEvent(){}}如果我实例化一个Foo,并将其传递给一个新的Bar构造函数,然后释放Bar对象,由于AnEvent注册,它不会被垃圾收集器释放。我认

c# - 内存溢出 : Having an increasing number of Microsoft. CSharp.RuntimeBinder.Semantics

我们目前正在我们的应用程序中寻找一些内存泄漏,当执行一些操作(在我们的应用程序中加载和关闭一个项目)时,我们知道内存总是增加一点点。我们已经找到了很多,但现在,增加最多的10个类是(根据我们的工具ANTSMemoryProfiler8.2):Microsoft.CSharp.RuntimeBinder.Semantics.SYMTBL+KeyMicrosoft.CSharp.RuntimeBinder.Semantics.LocalVariableSymbolMicrosoft.CSharp.RuntimeBinder.Semantics.CONSTVALMicrosoft.CShar

c# - 将事件内存分页到磁盘的速率极高,但持续内存使用率较低

如标题所述,我遇到了高页面文件事件的问题。我正在开发一个处理大量图像的程序,这些图像从硬盘驱动器加载。它从每张图片生成一些数据,我将这些数据保存在列表中。对于每3600张图像,我将列表保存到硬盘,其大小约为5到10MB。它以尽可能快的速度运行,因此它最大化了一个CPU线程。程序运行正常,它生成了它应该生成的数据,但是当我在VisualStudio中分析它时,我收到一条警告:DA0014:Extremelyhighratesofpagingactivememorytodisk.根据任务管理器,该程序的内存消耗约为50MB,而且似乎很稳定。当我运行该程序时,我在4GB中还剩下大约2GB,所